/*-------------------------------------------------------------------------
 * tds_instr.h
 *
 * Header file for BabelFish Instrumentation
 *
 * Copyright (c) 2021, Amazon Web Services, Inc. or its affiliates. All Rights Reserved
 *-------------------------------------------------------------------------
 */

#include "src/pltsql_instr.h"
#include "tds.h"

typedef enum BabelFishTdsInstrMetricType
{
	INSTR_TDS_LOGIN_SSL = INSTR_TSQL_COUNT,
	INSTR_TDS_LOGIN_END_TO_END_ENCRYPT,
	INSTR_TDS_LOGIN_ACTIVE_DIRECTORY,

	INSTR_UNSUPPORTED_TDS_PRELOGIN_THREADID,
	INSTR_UNSUPPORTED_TDS_PRELOGIN_INSTOPT,
	INSTR_UNSUPPORTED_TDS_PRELOGIN_TRACEID,
	INSTR_UNSUPPORTED_TDS_PRELOGIN_FEDAUTHREQUIRED,
	INSTR_UNSUPPORTED_TDS_PRELOGIN_NONCEOPT,
	INSTR_UNSUPPORTED_TDS_LOGIN_CB_SSPI_LONG,
	INSTR_UNSUPPORTED_TDS_LOGIN_GSS_S_CONTINUE_NEEDED,
	INSTR_UNSUPPORTED_TDS_LOGIN_NTLMSSP,

	INSTR_UNSUPPORTED_TDS_LOGIN_OPTION_FLAGS1_BYTE_ORDER_68000,
	INSTR_UNSUPPORTED_TDS_LOGIN_OPTION_FLAGS1_CHAR_EBCDIC,
	INSTR_UNSUPPORTED_TDS_LOGIN_OPTION_FLAGS1_FLOAT_VAX,
	INSTR_UNSUPPORTED_TDS_LOGIN_OPTION_FLAGS1_FLOAT_ND5000,
	INSTR_UNSUPPORTED_TDS_LOGIN_OPTION_FLAGS1_DUMP_LOAD_OFF,
	INSTR_UNSUPPORTED_TDS_LOGIN_OPTION_FLAGS1_USE_DB_ON,
	INSTR_UNSUPPORTED_TDS_LOGIN_OPTION_FLAGS1_DATABASE_FATAL,
	INSTR_UNSUPPORTED_TDS_LOGIN_OPTION_FLAGS1_SET_LANG_ON,
	INSTR_UNSUPPORTED_TDS_LOGIN_OPTION_FLAGS2_LANGUAGE_FATAL,
	INSTR_UNSUPPORTED_TDS_LOGIN_OPTION_FLAGS2_TRAN_BOUNDARY,
	INSTR_UNSUPPORTED_TDS_LOGIN_OPTION_FLAGS2_CACHE_CONNECT,
	INSTR_UNSUPPORTED_TDS_LOGIN_OPTION_FLAGS2_USER_TYPE_SERVER,
	INSTR_UNSUPPORTED_TDS_LOGIN_OPTION_FLAGS2_USER_TYPE_REMUSER,
	INSTR_UNSUPPORTED_TDS_LOGIN_OPTION_FLAGS2_USER_TYPE_SQLREPL,
	INSTR_UNSUPPORTED_TDS_LOGIN_OPTION_FLAGS2_INT_SECURITY_ON,
	INSTR_UNSUPPORTED_TDS_LOGIN_TYPE_FLAGS_SQL_TSQL,
	INSTR_UNSUPPORTED_TDS_LOGIN_TYPE_FLAGS_READ_ONLY_INTENT,
	INSTR_UNSUPPORTED_TDS_LOGIN_OPTION_FLAGS3_CHANGE_PASSWORD,
	INSTR_UNSUPPORTED_TDS_LOGIN_OPTION_FLAGS3_USER_INSTANCE,
	INSTR_UNSUPPORTED_TDS_LOGIN_OPTION_FLAGS3_SEND_YUKON_BINARY_XML,
	INSTR_UNSUPPORTED_TDS_LOGIN_OPTION_FLAGS3_UNKNOWN_COLLATION_HANDLING,
	INSTR_UNSUPPORTED_TDS_LOGIN_OPTION_FLAGS3_EXTENSION,

	INSTR_TDS_VERSION_7_0,
	INSTR_TDS_VERSION_7_1,
	INSTR_TDS_VERSION_7_1_1,
	INSTR_TDS_VERSION_7_2,
	INSTR_TDS_VERSION_7_3_A,
	INSTR_TDS_VERSION_7_3_B,
	INSTR_TDS_VERSION_7_4,

	INSTR_TDS_SP_EXECUTESQL,
	INSTR_TDS_SP_PREPARE,
	INSTR_TDS_SP_EXECUTE,
	INSTR_TDS_SP_PREPEXEC,
	INSTR_TDS_USER_CUSTOM_SP,
	INSTR_TDS_SP_UNPREPARE,
	INSTR_TDS_SP_CURSOR_OPEN,
	INSTR_TDS_SP_CURSOR_EXEC,
	INSTR_TDS_SP_CURSOR_PREPEXEC,
	INSTR_TDS_SP_CURSOR_FETCH,
	INSTR_TDS_SP_CURSOR_CLOSE,
	INSTR_TDS_SP_CURSOR_UNPREPARE,
	INSTR_UNSUPPORTED_TDS_SP_CURSOR,
	INSTR_UNSUPPORTED_TDS_SP_CURSOROPTION,
	INSTR_UNSUPPORTED_TDS_SP_CURSORPREPARE,

	INSTR_TDS_BULK_LOAD_REQUEST,

	INSTR_TDS_TM_REQUEST,

	INSTR_TDS_DATATYPE_VARCHAR_MAX,
	INSTR_TDS_DATATYPE_NVARCHAR_MAX,
	INSTR_TDS_DATATYPE_VARBINARY_MAX,
	INSTR_TDS_DATATYPE_MONEY,
	INSTR_TDS_DATATYPE_SMALLMONEY,
	INSTR_TDS_DATATYPE_XML,
	INSTR_TDS_DATATYPE_DATETIME_OFFSET,
	INSTR_TDS_DATATYPE_TABLE_VALUED_PARAMETER,
	INSTR_TDS_DATATYPE_SQLVARIANT,
	INSTR_TDS_DATATYPE_IMAGE,
	INSTR_TDS_DATATYPE_GEOMETRY,
	INSTR_TDS_DATATYPE_GEOGRAPHY,

	INSTR_TDS_TOKEN_NBCROW,
	INSTR_TDS_TOKEN_SSPI,
	INSTR_TDS_TOKEN_TABNAME,

	INSTR_TDS_UNMAPPED_ERROR,

	INSTR_TDS_COUNT
}			BabelFishTdsInstrMetricType;
